/**
 * 前端模型基类
 * 用于前端使用的基础模型类，提供与后端模型对应的接口
 */

class BaseModel {
    constructor(data = {}) {
        // 基本属性
        this.id = data.id || data._id || '';
        this._pid = data._pid || '';
        this.createTime = data.createTime || data.CREATE_TIME || 0;
        this.updateTime = data.updateTime || data.UPDATE_TIME || 0;
        
        // 排序号
        this.sortNo = data.sortNo || data.SORT_NO || 0;
        
        // 状态
        this.status = data.status || data.STATUS || 1;
    }
    
    /**
     * 设置模型对应的集合名
     * 仅用于前端模拟，实际操作仍需通过API
     */
    setCollection(collectionName) {
        this._collectionName = collectionName;
        return this;
    }
    
    /**
     * 获取集合名
     */
    getCollectionName() {
        return this._collectionName || '';
    }
    
    /**
     * 将对象转换为后端API格式
     * 用于发送数据到后端
     */
    toApiFormat() {
        return {
            _id: this.id,
            _pid: this._pid,
            CREATE_TIME: this.createTime,
            UPDATE_TIME: this.updateTime,
            SORT_NO: this.sortNo,
            STATUS: this.status
        };
    }
    
    /**
     * 从API响应创建模型实例
     * @param {Object} data API返回的数据
     * @returns {BaseModel} 模型实例
     */
    static fromApiResponse(data) {
        return new this(data);
    }
    
    /**
     * 创建一个新的模型实例
     * @param {Object} data 初始数据
     * @returns {BaseModel} 模型实例
     */
    static create(data) {
        return new this(data);
    }
}

module.exports = BaseModel; 